/**
 * 
 */
package com.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;

import com.database.TransactionManager;
import com.model.ProdutoBean;
import com.model.ProdutoMarcaBean;

/**
 * @author Isac
 *
 */
public class ProdutoMarcaDao {
	
	private String TABLE_PRODUTO_MARCA = "produtomarca";
	private String COLN_ID             = "prom_id";
	private String COLN_DESCRICAO      = "prom_descricao";
	
	public static String createTableMarca(){
		StringBuilder sb = new StringBuilder();
		
		sb.append("  create table produtomarca(                   ");
		sb.append("   prom_id integer primary key autoincrement,  ");
		sb.append("   prom_descricao TEXT);");
		
		return sb.toString();
	}
	
	public void insert(TransactionManager transaction, ProdutoMarcaBean promBean) {
		ContentValues values = new ContentValues();
		values.put(COLN_ID, promBean.getId());
		values.put(COLN_DESCRICAO, promBean.getDescricao());
		transaction.prepare().insert(TABLE_PRODUTO_MARCA, null, values);
	}
	
	public boolean delete(TransactionManager transaction, ProdutoMarcaBean prodId){
		return transaction.prepare().delete(TABLE_PRODUTO_MARCA,COLN_ID +" = "+prodId, null) > 0 ;
		
	}
	
	public long update(TransactionManager transaction, ProdutoMarcaBean prodBean ) {
		ContentValues values = new ContentValues();
		values.put(COLN_ID, prodBean.getId());
		values.put(COLN_DESCRICAO, prodBean.getDescricao());
		return transaction.prepare().update(TABLE_PRODUTO_MARCA, values,COLN_ID +" = "+prodBean.getId(), null);
		
	}
	
	public ProdutoMarcaBean openById(TransactionManager transaction, long prodId) {
		StringBuilder sql = new StringBuilder();
		sql.append("        select * from                  ");
		sql.append(          TABLE_PRODUTO_MARCA                  );
		sql.append("         where "+COLN_ID+" = "+ prodId   );
		ProdutoMarcaBean promBean = new ProdutoMarcaBean();
		Cursor cursor = transaction.prepare().rawQuery(sql.toString(), null);
		if (cursor.getCount() > 0) {
			cursor.moveToFirst(); 
			promBean.setId(cursor.getInt(cursor.getColumnIndex(COLN_ID)));
			promBean.setDescricao(cursor.getString(cursor.getColumnIndex(COLN_DESCRICAO)));
			cursor.close();
			return promBean;
		} else {
			cursor.close();
			return null;
		}		
	}
	
	public List<ProdutoMarcaBean> getAll(TransactionManager transaction) {
		StringBuilder sql = new StringBuilder();
		sql.append("        select * from                  ");
		sql.append(          TABLE_PRODUTO_MARCA                  );
		List<ProdutoMarcaBean> promList = new ArrayList<ProdutoMarcaBean>();
		Cursor cursor = transaction.prepare().rawQuery(sql.toString(), null);
		while (cursor.moveToNext()) {
			ProdutoMarcaBean promBean = new ProdutoMarcaBean();
			promBean.setId(cursor.getInt(cursor.getColumnIndex(COLN_ID)));
			promBean.setDescricao(cursor.getString(cursor.getColumnIndex(COLN_DESCRICAO)));
			promList.add(promBean);
		} 
			cursor.close();
			return promList;
	}
}
